libxl: notice if vbd virt device specifier ("path") unrecognised
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 5 Feb 2010 10:35:57 +0000 (10:35 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 5 Feb 2010 10:35:57 +0000 (10:35 +0000)
Previously, specifying a virtual device string the vbd that couldn't
be parsed would result in attempting to actually create the device
with vbd number -1 !

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c

index 168970554761dc5fe2d4c832d25f4c617cc76ef7..0b1b6dba31fcb6acbbcc08cefe20cd34b7b33008 100644 (file)
@@ -1112,6 +1112,11 @@ int libxl_device_disk_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_di
 
     backend_type = device_disk_backend_type_of_phystype(disk->phystype);
     devid = device_disk_dev_number(disk->virtpath);
+    if (devid==-1) {
+        XL_LOG(ctx, XL_LOG_ERROR, "Invalid or unuspported"
+               " virtual disk identifier %s", disk->virtpath);
+        return ERROR_INVAL;
+    }
 
     device.backend_devid = devid;
     device.backend_domid = disk->backend_domid;